package com.term.domain.enums;



import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.map.ser.std.EnumSerializer;

import java.util.Map;

/**
 * Created by Administrator on 2017/1/3.
 */
@JsonSerialize(using = EnumSerializer.class)
public interface BaseEnum<E extends Enum<?>, T> {

    /**
     * 值.
     */
    T getValue();

    /**
     * 显示值.
     */
    String getDisplayName();

    /**
     * 根据value获取枚举.
     */
    E getEnum(T value);

    /**
     * 获取枚举Map, key为value, val为enum.
     */
    Map<T, E> getAllValueMap();

}
